package com.qianli.user.facade.auth;

import com.fqgj.common.api.Response;
import com.qianli.user.ro.auth.*;
import com.qianli.user.ro.query.UserBaseQueryRO;

/**
 * name:用户认证服务（认证、实名、存管等服务）
 * auth:ting.li@qianli-inc.com
 * date:2017/12/2114:30
 * version: v1.0.0
 **/
public interface UserAuthServiceFacade {

    /**
     * 取消认证
     * @Param cancelAuth
     * @return
     */
    Response<Boolean> cancelAuth(UserCancelAuthRO cancelAuth);
    /**
     * 人脸识别（信审）
     * @param userAuthFace
     * @return
     */
    Response<Boolean> auditAuthFaceRecognition(UserAuthFaceRO userAuthFace);

    /**
     * 更新认证状态
     * @param userAuthRO
     * @return
     */
    Response<Boolean> updateUserAuthStatus(UserAuthRO userAuthRO);

    /**
     * 查询认证状态
     * @param queryRO
     * @return
     */
    Response<UserAuthStatusRO> queryUserAuthStatus(UserBaseQueryRO queryRO);

    /**
     * 推送第一次风控
     * @param userPushRiskRequest
     * @return
     */
    Response<Boolean> pushFirstRoundRisk(UserPushRiskRequest userPushRiskRequest);

    /**
     * 第一轮风控回调
     * @param userPushRiskCallbackRequest
     * @return
     */
    Response<Boolean> firstRoundRiskCallBack(UserPushRiskCallbackRequest userPushRiskCallbackRequest);

    /**
     * 查询第一次风控结果
     * @param riskNo
     * @return
     */
    Response<UserAuthFirstRiskRO> getUserAuthFirstRisk(String riskNo);

    /**
     * 查询最近一次风控结果
     * @param userCode
     * @return
     */
    Response<UserAuthFirstRiskRO> getUserAuthFirstRiskByUserCode(String userCode);

}
